﻿using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;


namespace CafeDeMinas.Models
{
    //herda da interface - IDisposable : isso que dizer que em algum lugar que herda a classe 
    // sempre vai executa o metodo Disponse() -- que fecha conexao com o banco
    class Conexao:IDisposable {

        private readonly SqlConnection minhaConexao;

        public Conexao() {
            minhaConexao = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
            minhaConexao.Open();
        }

        //não retorna nada -- insert , update , delete
        public void ExecutaComandoSemRetorno(string strQuery) {
            try{
                var strComand = new SqlCommand
                {
                    CommandText = strQuery,
                    CommandType = CommandType.Text,
                    Connection = minhaConexao
                };
                strComand.ExecuteNonQuery();
            }catch(Exception ex){
                throw;
            }
        }

        public SqlDataReader ExecutaComandoComRetorno(string strQuery) {
            try {
                var strComand = new SqlCommand(strQuery, minhaConexao);
                return strComand.ExecuteReader();
            }catch(Exception ex){
                throw;
            }
        }
        //fecha a conexao.
        public void Dispose() {
            if (minhaConexao.State == ConnectionState.Open) {
                minhaConexao.Close();
            }
        }
    }
}